declare namespace StyleLoader {
  type InjectType =
    | "styleTag"
    | "singletonStyleTag"
    | "autoStyleTag"
    | "lazyStyleTag"
    | "lazySingletonStyleTag"
    | "lazyAutoStyleTag"
    | "linkTag";
  // attributes
  type Attributes = Record<string, string>;
  // insert
  type Insert = string;
  // styleTagTransform
  type StyleTagTransform = string;
  // base
  type Base = number;
  // esModule
  type EsModule = boolean;

  export type Options = {
    /**
     * @default 'styleTag'
     */
    injectType?: InjectType;
    /**
     * @default {}
     */
    attributes?: Attributes;
    /**
     * @default 'head'
     */
    insert?: Insert;
    /**
     * @default undefined
     */
    styleTagTransform?: StyleTagTransform;
    /**
     * @default undefined
     */
    base?: Base;
    /**
     * @default true
     */
    esModule?: EsModule;
  };
}

declare module "style-loader" {
  export = StyleLoader;
}
